package net.angrynut.web.handler.endpoint;

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;

/**
 * 在调用 actuator 接口 `/health` 的时候，接口返回中会增加一项：
 *
 * ```json
 *  "demo": {
 *      "status": "UP",
 *      "success": "I said"
 *  }
 * ```
 *
 * 这是是个演示。在实际使用时应该做有意义的事。可以看一下 actuator 自带的
 * {@link HealthIndicator} 实现。
 */
@Component
public class DemoHealthIndicator implements HealthIndicator {

    @Override
    public Health health() {

        if (System.currentTimeMillis() % 2 == 1) {
            return Health.up().withDetail("success", "I said").build();
        } else {
            return Health.down().withDetail("failed", "I indicated").build();
        }
    }
}
